Service Oriented Architecture promotes reuse at the macro (service)
level rather than micro (classes) level. It can also simplify interconnections
of legacy IT assets. Practitioners of enterprise architecture (enterprise
architects) appreciate this aspect of SOA the most. They believe that
SOA can help businesses respond more quickly and cost-effectively to
ever-changing market conditions\cite{koch}. Businesses are
moving towards SOA because they realize some of the inefficiencies
and redundancies that existed in their old architecture.

In the business realm, mergers, acquisitions, and functional silos
lead to bloated IT infrastructures, which in turn
may result in overlapping and duplicate systems and applications.
Compounded with tight deadlines and other ongoing demands, these redundancies
may remain for a long time within a business. SOA spawned out of efforts
to fix this particular problem. By effectively eliminating redundancy
while simultaneously accelerating the delivery of projects through
consolidation and the reuse of services (web services), Service Oriented
Architecture allows businesses to effectively leverage their existing
assets instead of being forced to create another redundant silo for
each of their corporate needs. As a result, IT
becomes more efficient and allows for quicker project delivery as
well as shorter cycle times, which in turn better aligns IT with the
business level.

\begin{figure}
\begin{center}
\includegraphics[width=0.5\paperwidth]{benefits.eps}
\caption{Key benefits of using a typical SOA approach to a project\protect\cite{neil}.}
\label{fig:soabenefits}
\par\end{center}
\end{figure}

Figure ~\ref{fig:soabenefits} is a diagram that covers the top five architectural benefits
an ideal SOA would provide. There are also some core benefits pursued
by businesses using SOA:
\begin{enumerate}
\item Reduced integration expense
\item Increased asset reuse
\item Increased business agility
\item Reduced business risk
\end{enumerate}
As IBM puts it, SOA {}``generates more IT flexibility to support
greater business flexibility''. Business processes are changing faster
and faster and global competition requires the flexibility that SOA
can provide. SOA can help businesses to get better reuse out of their
existing IT investments as well as the new services they are developing
currently. SOA makes integration of IT investments easier by making
use of well-defined interfaces between services. SOA also provides
an architectural model for integrating business partners\textquoteright{},
customers\textquoteright{} and suppliers\textquoteright{} services
into an enterprise\textquoteright{}s business processes. This effectively
reduces cost and improves customer satisfaction. Also, SOA reduces
business risk and exposure by helping businesses comply with proliferating
government regulations, such as (in the United States) Sarbanes-Oxley and
the US Patriot Act. As a side note, many businesses look for
Return On Investment (ROI) from these benefits at many different
levels. However it's worth-noting that it's difficult to understand
SOA's true ROI before the project finishes due to the fact that
SOA addresses issues of fundamentally unpredictable business changes.

To understand how SOA provides those benefits, it's worthwhile to
revisit the definition of SOA:

{}``SOA is the architectural style that supports loosely coupled
services to enable business flexibility in an interoperable, technology-agnostic
manner. SOA consists of a composite set of business-aligned services
that support a flexible and dynamically re-configurable end-to-end
business processes realization using interface-based service descriptions.''\cite{bern}

As one can see, SOA's architectural style is not really new.
It captures many of the best practices of previous software architectures
(to certain extent and with certain variations). To name a few: modular
programming, event-oriented design, and interface/component-based
design are some of the concepts reflected in SOA designs. Using these
concepts, SOA promotes the goal of separating users/consumers from
the service implementations. Services can therefore be run on various
distributed platforms and be accessed across networks, maximizing
reuse of services. Also by formally embracing a SOA approach, such systems can 
position themselves to stress the importance of well-defined, highly 
inter-operable interfaces\cite{bieber}.

On an organization's stand point, a mature implmentation of SOA will
fully define the API for that organization, which will adhere
to the following service-oriented principles:
\begin{itemize}
\item Abstraction
\item Autonomy
\item Composability
\item Discoverability
\item Formal contract
\item Loose coupling
\item Reusability
\item Statelessness
\end{itemize}

The implementation of services are usually treated as separate
and smaller projects due to the fact that separation {}``produces''
services that can be delivered quickly and independently from the
larger and slower-moving projects common in the organization. The
business can then better understand the system and start simplifying
user interfaces at an earlier time. This in turn also promotes business
inovation and speeds up releasing time. Of course, separation
prometes decoupling and sandboxed/embed testings and documentation,
which all will make the service better-reusable.
